<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>JaDe Tokenizer: BearbeitenFenster.cs Quellcode</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="JaDe.jpg"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">JaDe Tokenizer
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Erzeugt von Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Suchen');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Hauptseite</span></a></li>
      <li><a href="namespaces.html"><span>Pakete</span></a></li>
      <li><a href="annotated.html"><span>Klassen</span></a></li>
      <li class="current"><a href="files.html"><span>Dateien</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Suchen" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Auflistung&#160;der&#160;Dateien</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('_bearbeiten_fenster_8cs.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">BearbeitenFenster.cs</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 ﻿using System;
<a name="l00002"></a>00002 <span class="keyword">using</span> System.Collections;
<a name="l00003"></a>00003 <span class="keyword">using</span> System.Collections.Generic;
<a name="l00004"></a>00004 <span class="keyword">using</span> System.ComponentModel;
<a name="l00005"></a>00005 <span class="keyword">using</span> System.Data;
<a name="l00006"></a>00006 <span class="keyword">using</span> System.Drawing;
<a name="l00007"></a>00007 <span class="keyword">using</span> System.Linq;
<a name="l00008"></a>00008 <span class="keyword">using</span> System.Text;
<a name="l00009"></a>00009 <span class="keyword">using</span> System.Windows.Forms;
<a name="l00010"></a>00010 
<a name="l00011"></a>00011 <span class="keyword">namespace </span>JADE
<a name="l00012"></a>00012 {<span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">    /// &lt;summary&gt;</span>
<a name="l00014"></a>00014 <span class="comment">    ///Form-Objekt(Windows Fenster), in dem das Trennen eines Token in zwei neue Token realisiert wird.</span>
<a name="l00015"></a>00015 <span class="comment">    /// &lt;/summary&gt;</span>
<a name="l00016"></a><a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html">00016</a> <span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">partial class </span><a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html" title="Form-Objekt(Windows Fenster), in dem das Trennen eines Token in zwei neue Token realisiert wird...">BearbeitenFenster</a> : Form
<a name="l00017"></a>00017     {<span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment">        /**int-Variable, erhält bei Aufruf des Fensters die Satznummer des zu bearbeitenden Token. */</span> 
<a name="l00019"></a><a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a206f736c01ec4dd86ca99572d72228fe">00019</a>         <span class="keyword">private</span> <span class="keywordtype">int</span> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a206f736c01ec4dd86ca99572d72228fe">Satznummer</a>;<span class="comment"></span>
<a name="l00020"></a>00020 <span class="comment">        /**int-Variable, erhält bei Aufruf des Fensters die Tokennummer des zu bearbeitenden Token. */</span> 
<a name="l00021"></a><a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abd65885829a5a400af0847477afa8c79">00021</a>         <span class="keyword">private</span> <span class="keywordtype">int</span> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abd65885829a5a400af0847477afa8c79">Tok</a>;<span class="comment"></span>
<a name="l00022"></a>00022 <span class="comment">        /**Daten Objekt, erhält bei Aufruf des Fensters die Satz- und Token-Daten aus dem HauptFenster. */</span> 
<a name="l00023"></a><a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abc17cfe4fd76f3df40228fd70ee82879">00023</a>         <span class="keyword">private</span> <a class="code" href="class_j_a_d_e_1_1_daten.html" title="Eine Klasse, die für das Speichern der Arraylist mit unseren Daten für den eingegebenen Text (die ein...">Daten</a> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abc17cfe4fd76f3df40228fd70ee82879">obj</a>;
<a name="l00024"></a>00024 <span class="comment"></span>
<a name="l00025"></a>00025 <span class="comment">        /**</span>
<a name="l00026"></a>00026 <span class="comment">         * Konstruktor für das Bearbeiten-Fenster.</span>
<a name="l00027"></a>00027 <span class="comment">         * @param obj Ein Objekt der Klasse Daten. Erhält bei Initialisierung des Fensters die Instanzdaten aus dem HauptFenster.</span>
<a name="l00028"></a>00028 <span class="comment">         * @param[in] Satznummer int-Wert des Satzes, in dem sich das gewünschte Token befindet.</span>
<a name="l00029"></a>00029 <span class="comment">         * @param[in] str string-Wert, der das zu trennenden Token repräsentiert. </span>
<a name="l00030"></a>00030 <span class="comment">         */</span>
<a name="l00031"></a><a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a05a536a2ff6db4bf59ac6c2b9c56ec52">00031</a>         <span class="keyword">public</span> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a05a536a2ff6db4bf59ac6c2b9c56ec52">BearbeitenFenster</a>(<a class="code" href="class_j_a_d_e_1_1_daten.html" title="Eine Klasse, die für das Speichern der Arraylist mit unseren Daten für den eingegebenen Text (die ein...">Daten</a> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abc17cfe4fd76f3df40228fd70ee82879">obj</a>, <span class="keywordtype">int</span> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a206f736c01ec4dd86ca99572d72228fe">Satznummer</a>, <span class="keywordtype">int</span> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abd65885829a5a400af0847477afa8c79">Tok</a>, String str)    <span class="comment">//</span>
<a name="l00032"></a>00032         {
<a name="l00033"></a>00033             this.Satznummer = <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a206f736c01ec4dd86ca99572d72228fe">Satznummer</a>;
<a name="l00034"></a>00034             this.Tok = <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abd65885829a5a400af0847477afa8c79">Tok</a>;
<a name="l00035"></a>00035             this.obj = <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abc17cfe4fd76f3df40228fd70ee82879">obj</a>;
<a name="l00036"></a>00036             InitializeComponent();
<a name="l00037"></a>00037             this.textBox3.Text = str;
<a name="l00038"></a>00038             this.Icon = <span class="keyword">new</span> System.Drawing.Icon(<span class="stringliteral">&quot;jade.ico&quot;</span>);
<a name="l00039"></a>00039         }
<a name="l00040"></a>00040         <span class="comment"></span>
<a name="l00041"></a>00041 <span class="comment">        /**</span>
<a name="l00042"></a>00042 <span class="comment">         * Funktion für den Trennen-Button. Überprüft, ob sich die beiden neuen Token aus den Chars des Ursprungs-Token zusammensetzen und trennt diese dann. </span>
<a name="l00043"></a>00043 <span class="comment">         */</span>
<a name="l00044"></a><a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a9153cabf6fc49da14599acd2ed2b7fe7">00044</a>         <span class="keyword">private</span> <span class="keywordtype">void</span> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a9153cabf6fc49da14599acd2ed2b7fe7">TrennenButton_Click</a>(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00045"></a>00045         {
<a name="l00046"></a>00046             ArrayList Alist = <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abc17cfe4fd76f3df40228fd70ee82879">obj</a>.<a class="code" href="class_j_a_d_e_1_1_daten.html#a20e383b8e081793086f9adb40b0fe269">Zugriff</a>;                                     <span class="comment">//Zugriff auf Datenstruktur</span>
<a name="l00047"></a>00047             ArrayList Satz = (ArrayList)Alist[<a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a206f736c01ec4dd86ca99572d72228fe">Satznummer</a>];                     <span class="comment">//Heraussuchen des Satzes in welchem sich das zu aendernde Token befindet  </span>
<a name="l00048"></a>00048             String test = this.textBox1.Text + this.textBox2.Text;             <span class="comment">//Hilfs-String bestehend aus der Summe der Inhalt von Textbox1+2 (String) </span>
<a name="l00049"></a>00049 
<a name="l00050"></a>00050             <span class="keywordflow">if</span> ((Equals(test, (String)Satz[<a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abd65885829a5a400af0847477afa8c79">Tok</a>])) &amp;&amp; !((Equals(this.textBox1.Text, <span class="stringliteral">&quot;&quot;</span>)) || (Equals(this.textBox2.Text, <span class="stringliteral">&quot;&quot;</span>))))                               <span class="comment">//Um unsinniges trennen zu vermeiden wird geprüft ob sich die getrennten neuen Token aus den Zeichen des urspruenglichen Token zusammen setzen </span>
<a name="l00051"></a>00051             {
<a name="l00052"></a>00052                 Satz.Insert(Tok, this.textBox2.Text);                          <span class="comment">//Fügt den Inhalt der 2ten Textbox in die Arraylist ein(an der Stelle Tok).</span>
<a name="l00053"></a>00053                 Satz.Insert(Tok, this.textBox1.Text);                          <span class="comment">//Fügt den Inhalt der 1ten Textbox in die Arraylist ein(an der Stelle Tok), Tok2 rückt dadurch nach hinten.</span>
<a name="l00054"></a>00054                 Satz.RemoveAt(Tok + 2);                                        <span class="comment">//Löscht den zu trennenden ursprünglichen Token.</span>
<a name="l00055"></a>00055                 Alist[<a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a206f736c01ec4dd86ca99572d72228fe">Satznummer</a>] = Satz;                                      <span class="comment">//Schreiben des geänderten Satzes in die Arraylist.</span>
<a name="l00056"></a>00056                 <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#abc17cfe4fd76f3df40228fd70ee82879">obj</a>.<a class="code" href="class_j_a_d_e_1_1_daten.html#a20e383b8e081793086f9adb40b0fe269">Zugriff</a> = Alist;                                           <span class="comment">//Schreiben der geänderten ARRAYLIST zurück in die Datenstruktur.</span>
<a name="l00057"></a>00057                 <a class="code" href="class_j_a_d_e_1_1_search_engine.html" title="Die Klasse SearchEngine enthält die Funktionen zum Suchen eines Tokens im Wörterbuch. Mit Hilfe von Linq to XML wird wadoku.xml durchsucht, um für ein gesuchtes Token entsprechende Einträge zu finden. Dabei gibt es die Möglichkeit, nach genau übereinstimmenden Einträgen zu suchen oder aber nach allen Einträgen, die wie das Token beginnen. So können eventuelle falsche Zerlegungen des TinySegmenters mit Hilfe von Wadoku und der Bearbeiten-Funktion verbessert werden.">SearchEngine</a>.<a class="code" href="class_j_a_d_e_1_1_search_engine.html#afd36b5e9cd5a78e215e11a5083cdb015">DisposeTable</a>(<a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a206f736c01ec4dd86ca99572d72228fe">Satznummer</a>, Tok);
<a name="l00058"></a>00058 
<a name="l00059"></a>00059                 <span class="comment">//Nach der Stelle, an der eine Bearbeitung vorgenommen wurde, müssen die Indizes in den Namen von eventuell vorhandenen Tabellen mit Sucheinträgen um 1 erniedrigt werden.</span>
<a name="l00060"></a>00060                 <span class="comment">//Dafür werden alle Indizes im Satz eine Stelle nach der Stelle des Trennens mit ShiftTable auf Tabellen überprüft und ggf. abgeändert. Die Schleife muss rückwärts über die Indzes laufe,</span>
<a name="l00061"></a>00061                 <span class="comment">//da nach die Indizes den Tabellennamen nach rechts verschoben werden.</span>
<a name="l00062"></a>00062                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = Satz.Count - 1; i &gt;= Tok + 1; i--)
<a name="l00063"></a>00063                 {
<a name="l00064"></a>00064                     <a class="code" href="class_j_a_d_e_1_1_search_engine.html" title="Die Klasse SearchEngine enthält die Funktionen zum Suchen eines Tokens im Wörterbuch. Mit Hilfe von Linq to XML wird wadoku.xml durchsucht, um für ein gesuchtes Token entsprechende Einträge zu finden. Dabei gibt es die Möglichkeit, nach genau übereinstimmenden Einträgen zu suchen oder aber nach allen Einträgen, die wie das Token beginnen. So können eventuelle falsche Zerlegungen des TinySegmenters mit Hilfe von Wadoku und der Bearbeiten-Funktion verbessert werden.">SearchEngine</a>.<a class="code" href="class_j_a_d_e_1_1_search_engine.html#a41708a7451c96c92fa1dcab5dad831a7">ShiftTable</a>(<a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a206f736c01ec4dd86ca99572d72228fe">Satznummer</a>, i, <span class="keyword">false</span>);
<a name="l00065"></a>00065                 }
<a name="l00066"></a>00066                 this.Close();
<a name="l00067"></a>00067             }
<a name="l00068"></a>00068             <span class="keywordflow">else</span>
<a name="l00069"></a>00069             {
<a name="l00070"></a>00070                 MessageBox.Show(<span class="stringliteral">&quot;Die 2 neuen Token müssen aus den Zeichen \ndes zu bearbeitenden Token bestehen.&quot;</span>, <span class="stringliteral">&quot;Fehler bei der Eingabe&quot;</span>, MessageBoxButtons.OK, MessageBoxIcon.Warning);
<a name="l00071"></a>00071             }
<a name="l00072"></a>00072         }
<a name="l00073"></a>00073 <span class="comment"></span>
<a name="l00074"></a>00074 <span class="comment">        /**</span>
<a name="l00075"></a>00075 <span class="comment">         * Funktion für den Abbrechen-Button. Ein Klick auf den Button schließt das BearbeitenFenster.</span>
<a name="l00076"></a>00076 <span class="comment">         */</span>
<a name="l00077"></a><a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a1c3d32567a858f58f37312107c1f3433">00077</a>         <span class="keyword">private</span> <span class="keywordtype">void</span> <a class="code" href="class_j_a_d_e_1_1_bearbeiten_fenster.html#a1c3d32567a858f58f37312107c1f3433">AbbrechenButton_Click</a>(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00078"></a>00078         {
<a name="l00079"></a>00079             this.Close();
<a name="l00080"></a>00080         }
<a name="l00081"></a>00081     }
<a name="l00082"></a>00082 }
</pre></div></div><!-- contents -->
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Alle</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Klassen</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namensbereiche</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Funktionen</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variablen</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Propertys</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>BearbeitenFenster.cs</b>      </li>

    <li class="footer">Erzeugt am Fre Mär 2 2012 15:52:52 für JaDe Tokenizer von
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
